
/*
 * @Description: Set
 * 
 * @Author: rendc
 * 
 * @Date: 2024-09-29 08:39:52
 * 
 * @LastEditors: rendc
 * 
 * @LastEditTime: 2024-09-29 09:36:17
 */
/**
 * Test01Set
 */
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

public class Test01Set {

  public static void main(String[] args) {
    // 实例化一个set集合
    Set<String> set = new HashSet<String>();
    // 存放元素
    set.add("hello1");
    set.add("hello2");
    set.add("hello3");
    set.add("hello4");
    set.add("hello5");
    set.add("hello5");
    set.add(null);
    set.add(null);
    System.out.println(set.size());
    // 遍历查看元素
    for (String str : set) {
      // 无序 不重复
      System.out.println(str);
    }
    // 用迭代器遍历
    // 创建一个迭代器
    Iterator<String> iterator = set.iterator();
    while (iterator.hasNext()) {
      System.out.println(iterator.next());
    }
    // 实例化一个set集合 用于存放Student类的对象
    Set<Student> setStudent = new HashSet<>();
    // 给集合添加元素
    setStudent.add(new Student("Student", 20));
    setStudent.add(new Student("Student", 20));
    setStudent.add(new Student("Student", 20));
    setStudent.add(new Student("Student", 20));
    System.out.println(setStudent.size());// 4
    // 所以 以上结果得知 HashSet认为这四个对象是不同的 为什么
    // 获取对象的hash值
    Student stu1 = new Student("Student", 20);
    Student stu2 = new Student("Student", 20);
    System.out.println("stu1.hashCode() = " + stu1.hashCode());
    System.out.println("stu2.hashCode() = " + stu2.hashCode());
  }
}